package app;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * Clase Propiedad:<p>
 * Clase contenedora de la informacion de una propiedad.
 * 
 * @author jaredkurosawa
 */
public class Propiedad {
	
	private int id;
	private int tipo;
	private double dimension;
	private String direccion;
	private double precio;
	private String usuario;
	private boolean validado;
	
	public int getId(){
		return id;
	}
	
	public void setId(int id){
		this.id = id;
	}

	public int getTipo() {
		return tipo;
	}
	
	public void setTipo(int tipo) {
		this.tipo = tipo;
	}
	
	public double getDimension ()
	{
		return dimension;
	}
	
	public void setDimension (double dimension)
	{
		this.dimension = dimension;
	}
	
	public String getDireccion() {
		return direccion;
	}
	
	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}
	
	public double getPrecio() {
		return precio;
	}
	
	public void setPrecio(double precio) {
		this.precio = precio;
	}
	
	public String getUsuario(){
		return usuario;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public String getDni() {
		return usuario;
	}

	public void setValidado(boolean validado){
		this.validado = validado;
	}
	public boolean getValidado(){
		return validado;
	}
	
	public void ver(){
		System.out.print ("Tipo de propiedad: ");
		
		switch (getTipo())
		{
		case 1:
			System.out.println ("Solar");
			break;
		case 2:
			System.out.println ("Piso");
			break;
		case 3:
			System.out.println ("Casa terrera");
			break;
		case 4:
			System.out.println ("Comercial");
		}
		
		System.out.println ("Direccion: " + getDireccion ());
		System.out.println ("Dimensiones: " + getDimension ());
		System.out.println ("Precio: " + getPrecio () + "\n");
	}
	
	// Recoge por pantalla los datos de la propiedad
	public void publicar(Usuario u) {
		InputStreamReader isr = null;
		BufferedReader br = null;
		boolean datoValido = false;
		int d = 0;
		try {
			isr = new InputStreamReader(System.in);
			br = new BufferedReader(isr);
			// Usuario
			usuario = u.getUsuario();
			// Tipo de Propiedad
			System.out.println("Inserte el tipo de propiedad:");
			System.out.println("1 - Solar.");
			System.out.println("2 - Piso.");
			System.out.println("3 - Casa Terrera.");
			System.out.println("4 - Local Comercial.");
			System.out.print("Opcion: ");
			while (!datoValido) {
				try {
					d = Integer.parseInt(br.readLine());
					while (d < 1 || d > 4) {
						System.out.println("Error en el formato: Fuera de rango.");
						System.out.print("Opcion: ");
						d = Integer.parseInt(br.readLine());
					}						
					tipo = d;
					datoValido = true;
				} catch (NumberFormatException e) {
					System.out.println("Error en el formato: No es un numero.");
					System.out.print("Opcion: ");	
					datoValido = false;
				}
			}
			// Direccion
			System.out.print("Inserte la direccion: ");
			direccion = br.readLine();
			datoValido = false;
			// Dimension
			System.out.print("Inserte la dimension (metros cuadrados): ");
			while (!datoValido) {
				try {
					d = Integer.parseInt(br.readLine());						
					dimension = d;
					while (d <= 0) {
						System.out.println("Error en el formato: Numero negativo.");
						System.out.print("Inserte la dimension: ");
						d = Integer.parseInt(br.readLine());
					}
					datoValido = true;
				} catch (NumberFormatException e) {
					System.out.println("Error en el formato: No es un numero.");
					System.out.print("Inserte la dimension: ");	
					datoValido = false;
				}
			}
			datoValido = false;
			// Precio
			System.out.print("Inserte el precio: ");
			double d_;
			while (!datoValido) {
				try {
					String aux = br.readLine();
					d_ = Double.parseDouble(aux);
					while (d_ <= 0) {
						System.out.println("Error en el formato: Numero negativo.");
						System.out.print("Precio: ");
						aux = br.readLine();
						d_ = Double.parseDouble(aux);
					}
					precio = d_;
					datoValido = true;
				} catch (NumberFormatException e) {
					System.out.println("Error en el formato: No es un numero.");
					System.out.print("Precio: ");	
					datoValido = false;
				}
			}
			System.out.print("Inserte el codigo de validacion: ");
			br.readLine();			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
